package locadora.negocio;

import java.io.FileNotFoundException;
import java.io.IOException;

import locadora.negocio.pessoas.Pessoa;




public interface GerenciamentoPessoas {
	
	/**
	 * Busca uma pessoa com chave única na camada de dados
	 * @param chave chave única de uma PEssoa
	 * @return referência para o Objeto encontrado ou null, caso contrário
	 * @throws FileNotFoundException
	 * @throws IOException
	 * @throws ClassNotFoundException
	 * @throws Exception 
	 */
	public Pessoa buscar(String chave) throws FileNotFoundException, IOException, ClassNotFoundException, Exception;
	
	/**
	 * Adiciona uma nova pessoa à camada de dados
	 * @param pessoa objeto a adicionar
	 * @throws Exception
	 */
	public void adicionar(Pessoa pessoa) throws Exception;
	
	/**
	 * Remove da camada de dados a pessoa com cha igual à passada por parâmetro
	 * @param chave chave única da Pessoa
	 * @throws Exception
	 */
	public void removerPessoa(String chave) throws Exception;
	
	/**
	 * Atualiza o objeto cuja chave é igual à passada por parâmetro para possuir os mesmos valores dos atributos
	 * do segundo parâmetro
	 * @param chave chave única do objeto a ser atualizado
	 * @param pessoa objeto de onde serão retirados os dados para atualização
	 * @throws Exception
	 */
	public void atualizar(String chave, Pessoa pessoa) throws Exception;

}
